#ifndef __CAMERA_PROTOCOL_HPP__
#define __CAMERA_PROTOCOL_HPP__

#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

enum  FrameType  {
    NetworkControl   = 0x00, // 组网控制指令
    Message          = 0x01, // 消息指令
    FileTransfer     = 0x02, // 文件传输协议
    VideoStream      = 0x03, // 视频数据（一定要流媒体压缩）
    JoystickSpecial  = 0x04  // Special - 专用于摇杆指令上报
};

enum FrameFlag  {
    Request  = 0x00,
    Response = 0x01,
    Status   = 0x02,
    Report   = 0x03,
    Unknown  = 0xFF
};

enum FrameSrcId {
    SrcID_1     = 0x0104,
    SrcID_2     = 0x01ff,
    SrcID_3     = 0x0204,
    SrcID_4   = 0x00FF,
    Unknown_SrcID  = 0x00FF
};

enum  FrameDstId {
    DstID_1  = 0x1402,
    DstID_2 = 0x1e02,
    DstID_3   = 0x0002,
    DstID_4   = 0x0003,
    Unknown_DstID  = 0x00FF
};

enum  FrameMsgId {
    MsgID_1  = 0x0221,
    MsgID_2 = 0x0222,
    MsgID_3   = 0x0002,
    MsgID_Zoom = 0x0229,
    MsgID_Picture  = 0x0300,
    MsgID_Record   = 0x0301,
    MsgID_Restore   = 0x0302,
    MsgID_FormatSDCard   = 0x0303,
    MsgID_Mode   = 0x0307,
    MsgID_Picture_Mode   = 0x0308,
    Unknown_MsgID  = 0x00FF
};

typedef enum {
    COMMAND_GET_VISIBLE_PARAMS = 0x0200,      // 可见光相机所有设置参数查询命令
    COMMAND_SET_VISIBLE_RECORD = 0x0202,       // 可见光录像分辨率设置命令  验证 通过
    COMMAND_SET_VISIBLE_PITURE = 0x0203,   // 可见光图像分辨率设置命令  验证 通过
    COMMAND_GET_VISIBLE_EXPOSURE = 0x0204,     // 可⻅光拍照参数设置指令
    COMMAND_SET_VISIBLE_EXPOSURE = 0x0205,     // 可见光曝光时间设置命令
    COMMAND_GET_VISIBLE_GAIN = 0x0206,         // 可见光增益设置查询命令
    COMMAND_SET_VISIBLE_GAIN = 0x0207,         // 可见光增益设置命令
    COMMAND_SET_VISIBLE_ISO = 0x0209,          // 可见光ISO设置命令
    COMMAND_SET_VISIBLE_EV = 0x020A,           // 可见光EV设置命令
    COMMAND_SET_VISIBLE_WHITE_BALANCE = 0x020B,// 可见光白平衡设置命令
    COMMAND_SET_VISIBLE_COLOR_TEMPERATURE = 0x020C, // 可见光色温设置命令
    COMMAND_SET_VISIBLE_SATURATION = 0x020D,   // 可见光抗闪烁设置命令
    COMMAND_SET_VISIBLE_CONTRAST = 0x020E,     // 可见光对比度设置命令
    COMMAND_SET_VISIBLE_BRIGHTNESS = 0x020F,   // 可见光强光抑制设置命令
    COMMAND_SET_VISIBLE_SHARPNESS = 0x0210,    // 可见光锐度设置命令
    COMMAND_GET_VISIBLE_FOCUS = 0x0211,        // 可见光焦距设置查询命令
    COMMAND_SET_VISIBLE_FOCUS = 0x0212,        // 可见光焦距设置命令                                          
    COMMAND_SET_VISIBLE_SHUTTER_SPEED = 0x0213,// 可见光透雾模式设置命令
    COMMAND_SET_VISIBLE_SENSOR = 0x0214,       // 可见光传感器设置命令
    COMMAND_SET_VISIBLE_SENSOR_MODE = 0x0215,  // 可见光图像参数设置
    COMMAND_SET_VISIBLE_RECORD_MODE = 0x0216,  // 可见光录像模式设置命令
    COMMAND_SET_VISIBLE_ELECTRONIC_SHUTTER = 0x0217,        // 可见光电子快门设置指令
    COMMAND_SET_VISIBLE_OSD_WATERMARK = 0x0218,             // 可见光OSD水印设置指令
    COMMAND_SET_VISIBLE_VIDEO_PREVIEW_MODE = 0x0219,        // 可见光视频预览方式设置指令
    COMMAND_SET_VISIBLE_VIDEO_RESOLUTION = 0x021A,          // 可见光视频分辨率参数设置指令 验证 不通过
    COMMAND_SET_VISIBLE_PITURE_FORMAT = 0x021B,             // 可见光照⽚保存格式设置指令   验证 通过
    COMMAND_SET_VISIBLE_RECORD_FORMAT = 0x021C,             // 可见光视频保存格式设置指令   验证 不通过
    COMMAND_SET_VISIBLE_VIDEO_STREAM_FLOW = 0x021D,         // 可见光视频码流设置指令
    COMMAND_SET_VISIBLE_VIDEO_ENCODING = 0x021E,            // AE LOCK设置指令
    COMMAND_SET_VISIBLE_LTF_CARD_FORMAT = 0x021F,           // 可见光相机LTF卡升级指令
    COMMAND_SET_VISIBLE_ZOOM_MAGNIFICATION = 0x0220,        // 可见光无极放大设置指令
    COMMAND_SET_VISIBLE_GLOBAL_SETTINGS = 0x0221,           // 可见光相机全局参数设置指令
    COMMAND_SET_VISIBLE_LIGHT_SOURCE_MODE = 0x0222,         // 可见光相机测光模式指令
    COMMAND_SET_VISIBLE_VIDEO_OUTPUT_FORMAT = 0x0223,       // 可⻅光相机视频输出格式设置指令 验证 
    COMMAND_FILE_SHARE = 0x0224,                            // 文件共享指令
    COMMAND_SET_DATA_ENCODING = 0x0227,                     // 数据压缩参数设置指令
    COMMAND_SET_AUTO_SHUTTER_CONTROL = 0x0228,              // IO/电子快门自动开关控制指令
    COMMAND_SET_IMAGE_EXPOSURE_COMPENSATION = 0x0229,       // 可见光指针倍率修整度放大小指令
    COMMAND_SET_FRAME_RATE = 0x022D,                        // 可见光帧率参数设置指令
    COMMAND_SET_FOCUS_DISTANCE = 0x022E,                    // 自动和手动模式设置指令
    COMMAND_SET_STORAGE_LOCATION = 0x022F,                  // 可见光视频保存储存位置设置指令
    COMMAND_SET_OPTICAL_ZOOM = 0x0309,                        // 可见光相机光学变焦倍率设置指令
    COMMAND_SET_OPTICAL_FOCUS = 0x030A,                        // 可见光相机变焦倍率设置指令
    COMMAND_SET_VIDEO_OUTPUT_FARMAT = 0x030F,                   // 相机视频输出编码格式设置指令
    COMMAND_SET_VISIBLE_PITURE_FORMAT_OLD = 0x0230,          //  可⻅光照⽚保存格式设置指令  验证 不通过
    COMMAND_GET_VERSION = 0x030D,                         // 获取版本信息 验证 通过
    VideoStreamOutputCommand = 0x0310,      // 相机视频输出码流值指令
    PhotoStorageSettingCommand = 0x0311,     // 照片存储设置指令
    VideoStorageSettingCommand = 0x0312,   // 视频存储设置指令
    FlightModeSettingCommand = 0x0313,     // 航迹模式设置指令
    VisibleLightIPSettingCommand = 0x0314, // 可见光相机 IP 地址设置指令
    VisibleLightIPGetCommand = 0x0315,     // 可见光相机 IP 地址获取指令
    InfraredCameraSettingCommand = 0x0316,  // 相机图像倒置指令
    CustomPhotoAndVideoStorageFolder=0x0330, // 自定义照片和视频存储文件夹指令
    GetCustomPhotoAndVideoStorageFolder=0x0331 // 获取自定义照片和视频存储文件夹路径
} VisibleCameraCommand;

/*--------------------------------- 基础功能 --------------------------------------*/ 

typedef enum {
    IMAGE_MODE_INFRARED          = 0x00,  // 红外图像（纯红外）                 目前支持
    IMAGE_MODE_INFRARED_PIP      = 0x01,  // 红外画中画（红外主画面+可见光小窗）
    IMAGE_MODE_VISIBLE           = 0x02,  // 可见光图像（纯可见光）
    IMAGE_MODE_VISIBLE_PIP       = 0x03,  // 可见光画中画（可见光主画面+红外小窗）
    IMAGE_MODE_FUSION_DEFAULT    = 0x04,  // 融合默认（红外与可见光算法融合）
    IMAGE_MODE_WIDE_VISIBLE      = 0x05,  // 广角可见光（大视野可见光）         目前支持
    IMAGE_MODE_ZOOM_VISIBLE      = 0x06,  // 变焦可见光（放大后的可见光）       目前支持
    IMAGE_MODE_SPLIT_SCREEN      = 0x07,   // 分屏显示（红外和可见光左右/上下分屏） 目前支持
    IMAGE_MODE_Unknown           = 0x00   // 未知
} DisplayMode;

typedef enum {
    Zoom_RemoteControl    = 0x00,  // 遥控器变倍（相机自主判断变倍相机）
    Zoom_Infrared         = 0x01,  // 红外相机变倍
    Zoom_VisibleLight     = 0x02,  // 可见光相机变倍
    Zoom_IR_and_Visible   = 0x03   // 红外相机及可见光相机变倍
}ZoomControlMode;

typedef enum {
    ZoomAction_ContinuousZoomIn   = 0x00,  // 连续放大
    ZoomAction_ContinuousZoomOut  = 0x01,  // 连续缩小
    ZoomAction_StopZoom           = 0x02,  // 停止变倍
    ZoomAction_StepZoomIn         = 0x03,  // 放大
    ZoomAction_StepZoomOut        = 0x04   // 缩小
}ZoomAction;


typedef enum  {
    Focus_Auto                  = 0x00,  // 自动对焦
    Focus_ManualAdjustPlus      = 0x01,  // 手动微调对焦 +
    Focus_ManualAdjustMinus     = 0x02,  // 手动微调对焦 -
    Focus_ManualAdjustStop      = 0x03,  // 停止手动微调对焦
    Focus_AreaAuto              = 0x04,  // 区域自动对焦
    Focus_OneKeyFocus           = 0x05,  // 一键对焦
    Focus_EnableAFOnZoom        = 0x06,  // 打开变倍后自动对焦
    Focus_DisableAFOnZoom       = 0x07   // 关闭变倍后自动对焦
}FocusAction;


struct Coordinate
{
    int16_t left_x; //左上X坐标
    int16_t left_y; //左上Y坐标
    int16_t right_x; //右下X坐标
    int16_t right_y; //右下Y坐标
};

/*---------------------------拍照与录像-------------------------------*/ 

typedef enum {
    CAMERA_MODE_PHOTO       = 0x0000,  // 拍照模式
    CAMERA_MODE_VIDEO       = 0x0001   // 录像模式
} CameraWorkMode;

typedef enum {
    PHOTO_MODE_DEFAULT            = 0x00, // 默认拍照，绑定照片设置
    PHOTO_MODE_IR                 = 0x01, // 红外拍照
    PHOTO_MODE_WIDE               = 0x02, // 广角拍照
    PHOTO_MODE_IR_WIDE            = 0x03, // 红外 + 广角
    PHOTO_MODE_ZOOM               = 0x04, // 变焦拍照
    PHOTO_MODE_IR_ZOOM            = 0x05, // 红外 + 变焦
    PHOTO_MODE_ZOOM_WIDE          = 0x06, // 变焦 + 广角
    PHOTO_MODE_IR_ZOOM_WIDE       = 0x07  // 红外 + 变焦 + 广角（航迹默认）
} PhotoMode;

typedef enum {
    CAMERA_CMD_START_CAPTURE = 0x00,  // 单拍或开始拍照（适用于单拍和连拍）
    CAMERA_CMD_STOP_CAPTURE  = 0x01   // 停止拍照（仅连拍模式下有效）
} CameraCommand;

typedef enum {
    VIDEO_MODE_DEFAULT           = 0x00, // 默认录像
    VIDEO_MODE_IR                = 0x01, // 红外录像
    VIDEO_MODE_WIDE              = 0x02, // 广角录像
    VIDEO_MODE_IR_WIDE           = 0x03, // 红外 + 广角录像
    VIDEO_MODE_ZOOM              = 0x04, // 变焦录像
    VIDEO_MODE_IR_ZOOM           = 0x05, // 红外 + 变焦录像
    VIDEO_MODE_ZOOM_WIDE         = 0x06, // 变焦 + 广角录像
    VIDEO_MODE_IR_ZOOM_WIDE      = 0x07  // 红外 + 变焦 + 广角录像
} VideoMode;

typedef enum {
    VIDEO_CMD_START_RECORDING    = 0x01, // 开始录像（四代 TK 吊舱专用指令）
    VIDEO_CMD_STOP_RECORDING     = 0x02, // 停止录像
    VIDEO_CMD_DELAY_3S           = 0x03, // 3秒延时录像开始
    VIDEO_CMD_DELAY_5S           = 0x04, // 5秒延时录像开始
    VIDEO_CMD_DELAY_10S          = 0x05  // 10秒延时录像开始
} VideoControlCommand;

/*---------------------------相机设置-------------------------------*/ 

typedef enum {
    // HD 1280x720 (0x00 - 0x06)
    VIDEO_MODE_HD_1280x720_24P   = 0x00,
    VIDEO_MODE_HD_1280x720_25P   = 0x01,
    VIDEO_MODE_HD_1280x720_30P   = 0x02,
    VIDEO_MODE_HD_1280x720_48P   = 0x03,
    VIDEO_MODE_HD_1280x720_50P   = 0x04,
    VIDEO_MODE_HD_1280x720_60P   = 0x05,
    VIDEO_MODE_HD_1280x720_120P  = 0x06,

    // FHD 1920x1080 (0x07 - 0x0D)
    VIDEO_MODE_FHD_1920x1080_24P = 0x07,
    VIDEO_MODE_FHD_1920x1080_25P = 0x08,
    VIDEO_MODE_FHD_1920x1080_30P = 0x09,    // 目前文档支持
    VIDEO_MODE_FHD_1920x1080_48P = 0x0A,
    VIDEO_MODE_FHD_1920x1080_50P = 0x0B,
    VIDEO_MODE_FHD_1920x1080_60P = 0x0C,    // 目前文档支持
    VIDEO_MODE_FHD_1920x1080_120P = 0x0D,

    // 2K 1920x1440 (0x0E - 0x14)
    VIDEO_MODE_2K_1920x1440_24P = 0x0E,
    VIDEO_MODE_2K_1920x1440_25P = 0x0F,
    VIDEO_MODE_2K_1920x1440_30P = 0x10,
    VIDEO_MODE_2K_1920x1440_48P = 0x11,
    VIDEO_MODE_2K_1920x1440_50P = 0x12,
    VIDEO_MODE_2K_1920x1440_60P = 0x13,
    VIDEO_MODE_2K_1920x1440_120P = 0x14,

    // 2.7K 2704x1520 (0x15 - 0x1B)
    VIDEO_MODE_2_7K_2704x1520_24P = 0x15,
    VIDEO_MODE_2_7K_2704x1520_25P = 0x16,
    VIDEO_MODE_2_7K_2704x1520_30P = 0x17,
    VIDEO_MODE_2_7K_2704x1520_48P = 0x18,
    VIDEO_MODE_2_7K_2704x1520_50P = 0x19,
    VIDEO_MODE_2_7K_2704x1520_60P = 0x1A,
    VIDEO_MODE_2_7K_2704x1520_120P = 0x1B,

    // 2.7K 2720x1530 (0x1C - 0x22)
    VIDEO_MODE_2_7K_2720x1530_24P = 0x1C,
    VIDEO_MODE_2_7K_2720x1530_25P = 0x1D,
    VIDEO_MODE_2_7K_2720x1530_30P = 0x1E,
    VIDEO_MODE_2_7K_2720x1530_48P = 0x1F,
    VIDEO_MODE_2_7K_2720x1530_50P = 0x20,
    VIDEO_MODE_2_7K_2720x1530_60P = 0x21,
    VIDEO_MODE_2_7K_2720x1530_120P = 0x22,

    // 4K 3840x2160 (0x23 - 0x2A)
    VIDEO_MODE_4K_3840x2160_23P = 0x23,
    VIDEO_MODE_4K_3840x2160_24P = 0x24,
    VIDEO_MODE_4K_3840x2160_25P = 0x25,
    VIDEO_MODE_4K_3840x2160_30P = 0x26,     // 目前文档支持
    VIDEO_MODE_4K_3840x2160_48P = 0x27,
    VIDEO_MODE_4K_3840x2160_50P = 0x28,
    VIDEO_MODE_4K_3840x2160_60P = 0x29,     // 目前文档支持
    VIDEO_MODE_4K_3840x2160_120P = 0x2A,

    // C4K 4096x2160 (0x2B - 0x33)
    VIDEO_MODE_C4K_4096x2160_23P = 0x2B,
    VIDEO_MODE_C4K_4096x2160_24P = 0x2C,
    VIDEO_MODE_C4K_4096x2160_25P = 0x2D,
    VIDEO_MODE_C4K_4096x2160_30P = 0x2E,
    VIDEO_MODE_C4K_4096x2160_48P = 0x2F,
    VIDEO_MODE_C4K_4096x2160_50P = 0x30,
    VIDEO_MODE_C4K_4096x2160_60P = 0x31,
    VIDEO_MODE_C4K_4096x2160_120P = 0x32,

    // 6K 5472x3072 (0x34 - 0x35)
    VIDEO_MODE_6K_5472x3072_25P = 0x34,
    VIDEO_MODE_6K_5472x3072_30P = 0x35,     // 目前文档支持

    // 1200K (0x36 - 0x37)
    VIDEO_MODE_1200K_25P = 0x36,
    VIDEO_MODE_1200K_30P = 0x37,

    // 5.5K 5472x3078 (0x38)
    VIDEO_MODE_5_5K_5472x3078_30P = 0x38,

    // 5K 4384x2464 (0x39)
    VIDEO_MODE_5K_4384x2464_30P = 0x39,

    // 8K 7264x4086 (0x3A - 0x3C)
    VIDEO_MODE_8K_7264x4086_25P = 0x3A,     // 目前文档支持
    VIDEO_MODE_8K_7264x4086_30P = 0x3B,
    VIDEO_MODE_8K_7264x4086_60P = 0x3C,

    // 8K 7264x4086_15P (0x3D)
    VIDEO_MODE_8K_7264x4086_15P = 0x3D

} VideoResolution;

typedef enum {
    CAMERA_TYPE_WIDE_ANGLE = 0x00, // 广角相机
    CAMERA_TYPE_ZOOM       = 0x01, // 变焦相机
    CAMERA_TYPE_INFRARED   = 0x02  // 红外相机
} ResolutionType;

typedef enum {
    PHOTO_RESOLUTION_384x288         = 0x00,
    PHOTO_RESOLUTION_320x240         = 0x01,
    PHOTO_RESOLUTION_640x480         = 0x02,
    PHOTO_RESOLUTION_1280x720_1_2M   = 0x03,
    PHOTO_RESOLUTION_1920x1080_2M    = 0x04,
    PHOTO_RESOLUTION_2688x1520_4M    = 0x05,
    PHOTO_RESOLUTION_2592x1955_5M    = 0x06,
    PHOTO_RESOLUTION_3840x2160_8M    = 0x07,    // 目前文档支持
    PHOTO_RESOLUTION_4000x2250_16_9  = 0x08,
    PHOTO_RESOLUTION_4056x2280_16_9  = 0x09,
    PHOTO_RESOLUTION_4000x3000_12M   = 0x0A,    // 目前文档支持
    PHOTO_RESOLUTION_4056x3040_4_3   = 0x0B,
    PHOTO_RESOLUTION_4352x3264_14M   = 0x0C,
    PHOTO_RESOLUTION_4608x3456_16M   = 0x0D,
    PHOTO_RESOLUTION_4864x3648_4_3   = 0x0E,
    PHOTO_RESOLUTION_5472x3078_16_9  = 0x0F,
    PHOTO_RESOLUTION_5472x3684_20M   = 0x10,
    PHOTO_RESOLUTION_5472x3648_3_2   = 0x11,    // 目前文档支持
    PHOTO_RESOLUTION_6016x4008_6K    = 0x12,
    PHOTO_RESOLUTION_5496x3672_20_18MP = 0x13,
    PHOTO_RESOLUTION_8000x6000_48MP  = 0x14,    // 目前文档支持
    PHOTO_RESOLUTION_4000x3000       = 0x15,    // 目前文档支持
    PHOTO_RESOLUTION_5160x3890       = 0x16,
    PHOTO_RESOLUTION_5664x4248       = 0x17,
    PHOTO_RESOLUTION_5504x3680_20_25MP = 0x18,
    PHOTO_RESOLUTION_6080x3420_16_9  = 0x19,
    PHOTO_RESOLUTION_5472x3076_16_9  = 0x20
} PhotoResolutionSetting;


typedef enum {
    VIDEO_OUTPUT_INVALID     = 0x00, // 无效
    VIDEO_OUTPUT_HDMI        = 0x01, // HDMI 输出
    VIDEO_OUTPUT_GIGE_RESET  = 0x02  // 千兆网络输出 + 恢复出厂默认
} VideoOutputMode;

typedef enum {
    VIDEO_RESOLUTION_720P_30FPS   = 0x01, // 720P 30FPS
    VIDEO_RESOLUTION_720P_60FPS   = 0x02, // 720P 60FPS (恢复出厂默认)
    VIDEO_RESOLUTION_1080P_30FPS  = 0x03, // 1080P 30FPS
    VIDEO_RESOLUTION_1080P_60FPS  = 0x04, // 1080P 60FPS
    VIDEO_RESOLUTION_4K_30FPS     = 0x05, // 4K 30FPS
    VIDEO_RESOLUTION_6K_30FPS     = 0x06, // 6K 30FPS
    VIDEO_RESOLUTION_2_7K_30FPS   = 0x07  // 2.7K 30FPS
} VideoResolutionFpsSetting;

typedef enum  {
    VIDEO_ENCODE_FORMAT_H264 = 0x00,    // H.264/AVC 编码格式（默认值）
    VIDEO_ENCODE_FORMAT_H265 = 0x01,    // H.265/HEVC 编码格式
}VideoEncodingFormat;

typedef enum {
    PHOTO_MODE_SINGLE_SHOT             = 0x00, // 正常单拍
    PHOTO_MODE_BURST                   = 0x01, // 连拍
    PHOTO_MODE_CONTINUOUS              = 0x02, // 持续拍
    PHOTO_MODE_TIMELAPSE               = 0x03, // 延时拍
    PHOTO_MODE_HDR                     = 0x04, // HDR拍照
    PHOTO_MODE_HDR_IMAGING_4K_JPEG     = 0x05, // HDR成像（4K JPEG）
    PHOTO_MODE_AEB                     = 0x06, // 自动包围曝光 AEB连拍 3/5张@0.7EV步长
    PHOTO_MODE_PIV                     = 0x07, // PIV拍照
    PHOTO_MODE_LOWLIGHT_SMART          = 0x08, // 低光智能拍照
    PHOTO_MODE_PANORAMA                = 0x09, // 全景拍照
    PHOTO_MODE_TIMER                   = 0x0A  // 定时拍照
}TakePhotoType;

typedef enum {
    CurrentPhoto        = 0x01,  // Bit0
    ZoomVisiblePhoto    = 0x02,  // Bit1
    WideAngleVisiblePhoto = 0x04, // Bit2
    InfraredPhoto       = 0x08,  // Bit3
    Reserved            = 0xF0   // Bit4~Bit7 (Reserved)
}PhotoFlags;

typedef enum {
    CMD_FACTORY_RESET = 0x01
} resetCommand;

typedef enum {
    RESERVED_DEFAULT = 0x00
    // 未来可以扩展其他值
} ReservedCode;

typedef enum {
    FORMAT_IR_SD_CARD      = 0x01,  // 格式化红外 SD 卡
    FORMAT_VISIBLE_SD_CARD = 0x02,  // 格式化可见光 SD 卡
    FORMAT_BOTH_SD_CARDS   = 0x03   // 红外+可见光都格式化
} FormatSDCardCommand;


/*-------------------- 其他功能 ---------------------------*/ 
typedef enum {
    CAMERA_DEFAULT = 0x00,    // 默认相机（当前相机）
    CAMERA_WIDE_ANGLE = 0x01, // 广角相机
    CAMERA_ZOOM = 0x02        // 变焦相机
} CameraType;

typedef enum {
    IMAGE_FORMAT_JPG       = 0x01,  // JPG 格式
    IMAGE_FORMAT_RAW       = 0x02,  // RAW 格式 
    IMAGE_FORMAT_UNKOWN    = 0x03 // 未定义
} ImageSaveFormat;

typedef enum {
    VIDEO_FORMAT_MOV = 0x01,  // MOV 格式
    VIDEO_FORMAT_MP4 = 0x02   // MP4 格式
} VideoSaveFormat;


typedef enum {
    VIDEO_RES_INVALID        = 0x00, // 无效值
    VIDEO_RES_4K_60M         = 0x01, // 4K 60Mbps
    VIDEO_RES_4K_40M         = 0x02, // 4K 40Mbps
    VIDEO_RES_1080P_40M      = 0x03, // 1080P 40Mbps
    VIDEO_RES_1080P_25M      = 0x04, // 1080P 25Mbps
    VIDEO_RES_720P_25M       = 0x05, // 720P 25Mbps
    VIDEO_RES_720P_15M       = 0x06  // 720P 15Mbps
} VideoResolutionBitrate;

typedef enum {
    CAMERA_REPRO_START = 0x00, // 开启上报
    CAMERA_REPRO_STOP = 0x01, // 关闭上班
} ReproSwitchMode;

typedef enum {
    INFRARED_CAMERA_VERSION = 0x00,    // 获取红外相机版本号
    VISIBLE_CAMERA_VERSION  = 0x01     // 获取可见光相机版本号
}DevicesType;


#endif

